﻿using System.Drawing;
using System.Runtime.InteropServices;

namespace CanvasControl.Model
{
    /// <summary>
    /// Интерфейс для доступа к WinApi.
    /// </summary>
    public static class SystemMetrics
    {
        /// <summary>
        /// Максимальное количество пикселей по оси X, при смещение на которое, движение не будет восприниматься как начало перетаскивания.
        /// </summary>
        const int SM_CXDRAG = 68;
        
        /// <summary>
        /// Максимальное количество пикселей по оси X, при смещение на которое, движение не будет восприниматься как начало перетаскивания.
        /// </summary>
        const int SM_CYDRAG = 69;

        /// <summary>
        /// Возвращает размер зоны нечувствительности начала перетаскивания к перемещению курсора мыши.
        /// </summary>
        public static Size GetDragToleranceSize()
        {
            var cxdrag = GetSystemMetrics(SM_CXDRAG);
            var cydrag = GetSystemMetrics(SM_CYDRAG);
            return new Size(cxdrag, cydrag);
        }

        [DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
        static extern int GetSystemMetrics(int metric);
    }
}